cmake_minimum_required(VERSION 3.15)
project(lrn_cpp_stl)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

include_directories(tools)
add_library(my_tools tools/mytools.cpp)

set(NAMED_REQUIREMENTS_DIR cpp_reference/named_requirements)
set(UTILITY_LIBRARY_DIR cpp_reference/utility_library)
set(CLASSES_DIR cpp_reference/language/classes)

add_executable(named_requirements ${NAMED_REQUIREMENTS_DIR}/main.cpp ${NAMED_REQUIREMENTS_DIR}/function_object.cpp)
target_link_libraries(named_requirements my_tools)

add_executable(utility ${UTILITY_LIBRARY_DIR}/main.cpp ${UTILITY_LIBRARY_DIR}/pair_tuple.cpp ${UTILITY_LIBRARY_DIR}/std_functional.cpp)
target_link_libraries(utility my_tools)

add_executable(classes ${CLASSES_DIR}/main.cpp ${CLASSES_DIR}/classes.cpp)
target_link_libraries(classes my_tools)